// pages/index/index.js
const app = getApp()
import config from '../../utils/config.js';
import util from '../../utils/util.js';
import Dialog from '../../vant/dialog/dialog';
import {
  indexModel
} from '../../models/index';
const index = new indexModel();
import {
  coreModel
} from '../../models/core';
const core = new coreModel();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    config: config,
    height: app.globalData.height,
    barheight: app.globalData.barheight,
    sysBottom: app.globalData.bottom,
    ifTop:false,
    roleType: '', // 角色类别 1食堂人员,2档口人员
    stallPriceStatus: '', // 档口角色是否可看商品价格 1显示

    mesNumO:0,  //未读消息数量(订单)
    mesNumS:0,  //未读消息数量（系统）

    topList: [],

    allPage: 0, // 所有页数
    page: 1, // 第几页
    endFlag: false, // 是否到最后
    goodsList: [], // 商品列表
    flist: [],
    slist: [],
    
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 隐藏原生的tabbar
    wx.hideTabBar()
    this.data.fLoad = true
    this.selectCategory();
    this.getAuth()
  },
  getAuth() {
    var _this = this
    wx.request({
      url: config.projectUrl + 'canteen/canteen/currentCanteenInfo',
      method: 'get',
      header: {
        'authentication': wx.getStorageSync('authentication')
      },
      success: function (res) {
        if(res.data.code == '402'){
          Dialog.confirm({
            title: '提示',
            message: '您还未登录，请先登录再进行操作',
            confirmButtonText: '确定',
            cancelButtonText: '取消'
          }).then(() => {
            wx.reLaunch({
              url: '/pages/login/login'
            })
          }).catch(() => {
            // on cancel
          });
        }else{
          _this.setData({
            stallPriceStatus: res.data.data.stallPriceStatus
          })
          // console.log(_this.stallPriceStatus)
          _this.getList();
          _this.notMessage();
        }
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    var userInfo = wx.getStorageSync('userInfo');
    this.setData({
      roleType: userInfo.roleType
    })
    if(!this.data.fLoad){
      this.setData({
        allPage: 0,
        page: 1,
        endFlag: false,
        goodsList: [],
        flist: [],
        slist: [],
      })
      // this.data.allPage= 0, // 所有页数
      // this.data.page= 1, // 第几页
      // this.data.endFlag= false, // 是否到最后
      // this.data.goodsList= [], // 商品列表
      // this.data.flist= [],
      // this.data.slist=[]
      this.getAuth()
    }
    this.data.fLoad = false
  },

  // 搜索
  searchTo(){
    wx.navigateTo({
      url: '../search/search'
    });
  },

  // 消息
  onMessage(){
    wx.navigateTo({
      url: '/pages/index/message/message?mesNumO='+this.data.mesNumO+'&mesNumS='+this.data.mesNumS
    })
  },

  // 未读消息
  notMessage(){
    index.apiNotMessage({}, res => {
        this.setData({
          mesNumO:res.orderMessageCount,
          mesNumS:res.systemMessageCount
        })
    })
  },

  // 分类列表（默认固定）
  selectCategory(){
    index.apiCategoryM({}, res => {
        this.setData({
          topList:res.data
        })
    })
  },

  // 商品列表
  getList() {
    var that = this
    index.apiProduct({
      page: this.data.page,
      limit: 10,
      publicStatus: 1
    }, res => {
      if (res.list.length > 0) {
        var page = this.data.page;
        var allPage = res.allPage;
        var endFlag = false;
        if (page == allPage) {
          endFlag = true;
        } else {
          page += 1;
        }
        var note = res.list
        var flist = this.data.flist, slist = this.data.slist
        var filterFlag = false
        if (flist.length > slist.length) {
          filterFlag = true
        }
        for(var i=0;i<note.length;i++){
          if (note[i].productName.length > 20) {
            note[i].productName = note[i].productName.substring(0, 20) + '...'
          }
          if (filterFlag) {
            if (i % 2 == 0) {
              slist.push(note[i])
            } else {
              flist.push(note[i])
            }

          } else {
            if (i % 2 == 0) {
              flist.push(note[i])
            } else {
              slist.push(note[i])
            }

          }
        }
        var goodsList = []
        goodsList = flist.concat(slist)
        this.setData({
          goodsList: goodsList,
          endFlag: endFlag,
          allPage: allPage,
          page: page
        });
      }

    })

  },

  // 商品详情
  onDetail: util.throttle(function (e) {
    var productId = e.currentTarget.dataset.id
    if (productId) 
      wx.navigateTo({
        url: '/pages/commodity/commodityInfo/commodityInfo?productId=' + productId,
      })

  }),

  // 搜索
  searchTo(){
    wx.navigateTo({
      url: '/pages/search/search?type=1'
    });
  },

  // 商品分类
  selectType(e){
    app.globalData.classifyId = e.currentTarget.dataset.id
    var role = app.globalData.roleType; // 1 食堂人员 2 档口人员
    if(role==1){
      wx.switchTab({
        url: '/pages/commodity/commodity',
      })
    }else{
      wx.navigateTo({
        url: '/pages/coreAdmin/gateDeclaration/gateDeclaration?tid='+e.currentTarget.dataset.id
      });
    }
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.setData({
      allPage: 0, // 所有页数
      page: 1, // 第几页
      endFlag: false, // 是否到最后
      goodsList: [], // 商品列表
      flist: [],
      slist:[]
    })
    this.onLoad();
    //模拟加载 		
    setTimeout(function () {		
      wx.hideNavigationBarLoading() //完成停止加载 			
      wx.stopPullDownRefresh() //停止下拉刷新 		
    }, 1500);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.endFlag) {
      util.msg('已是最后了');
      return;
    } else {
      this.getList();
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  onPageScroll: function(e){
    if(e.scrollTop>(1)){
      this.setData({
        ifTop: true
      })
    }else{
      this.setData({
        ifTop: false
      })
    }
  },
})